home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1999 / MacHack 1999.toast / The Hacks / Magic 8-Ball / MEB.c < prev    next >
Encoding:
Text File  |  1999-06-26  |  1.8 KB  |  79 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Brickout.c
  3.  
  4.     Contains:    A sample dcmd which plays brickout.
  5.  
  6.     Written by:    Andy Bachorski
  7.  
  8.     Copyright:    © 1999 by Andy Bachorski
  9.  
  10.     Change History (most recent first):
  11.     
  12.         <1> 99-6-26        Written at the MacHack 99 Hack Contest.
  13.  
  14.  
  15. */
  16.  
  17. //******************************************************************************
  18.  
  19. //#include "MEB.h"
  20.  
  21. #include <LowMem.h>
  22.  
  23. #include "dcmd.h"
  24.  
  25.  
  26. //******************************************************************************
  27.  
  28. pascal void CommandEntry (dcmdBlock* paramPtr)
  29. {
  30.     Boolean        okToRun = false;
  31.     
  32.     switch( paramPtr->request )
  33.     {
  34.         case dcmdInit:
  35.             break;
  36.  
  37.         case dcmdHelp:
  38.             dcmdDrawLine("\p A magic 8-Ball for your debugging pleasure.");
  39.             break;
  40.  
  41.         case dcmdGetInfo:
  42.             * (long *) &((GetInfoRequestBlockPtr) paramPtr->requestIOBlock)->dcmdVersion = 0x01002000; // version 3.0 final
  43.             break;
  44.  
  45.         case dcmdDoIt:
  46.         {
  47.             long    tics = TickCount();
  48.             long    index = tics % 8;
  49.             long    i;
  50.             
  51.             for ( i = 0; i < index; i ++ )
  52.             {
  53.                 DebuggerPoll();
  54.             }
  55.             
  56.             switch ( index )
  57.             {
  58.                 case 0 : dcmdDrawLine("\p Future uncertain - try again"); break;
  59.                 case 1 : dcmdDrawLine("\p Blame it on cosmic rays."); break;
  60.                 case 2 : dcmdDrawLine("\p It must be a hardware problem."); break;
  61.                 case 3 : dcmdDrawLine("\p Where did you learn to write code like this."); break;
  62.                 case 4 : dcmdDrawLine("\p Most likely it's heap corruption."); break;
  63.                 case 5 : dcmdDrawLine("\p Stack trace is your friend."); break;
  64.                 case 6 : dcmdDrawLine("\p Are your stack and heap getting to close to each other?"); break;
  65.                 case 7 : dcmdDrawLine("\p Do you still have the box this computer came in?"); break;
  66.             }
  67.         }
  68.         break;
  69.  
  70.         // Version 3 and newer dcmds must quietly ignore requests we don't recognize.
  71.  
  72.         default:
  73.             break;
  74.     }
  75.  
  76. } // CommandEntry
  77.  
  78. //******************************************************************************
  79.